home *** CD-ROM | disk | FTP | other *** search
-
- /*
- * xr.c - a cross-reference generator
- */
- #include <assert.h>
- #include <ctype.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-
- #include "xrt.h"
-
- int getword(char *word, size_t lim)
- {
- int c;
- char *w = word;
-
- assert(lim > 2);
- while (isspace(c = fgetc(stdin)) && c != '\n')
- ;
- if (c != EOF)
- *w++ = c;
- if (!isalpha(c))
- {
- *w = '\0';
- return c;
- }
- for ( ; lim-- > 0; ++w)
- if (!isalnum(*w = fgetc(stdin)))
- {
- ungetc(*w, stdin);
- break;
- }
- *w = '\0';
- return *word;
- }
-
- #define MAXWORD 100
-
- int main(void)
- {
- char word[MAXWORD];
- unsigned lineno = 1;
-
- while (getword(word, MAXWORD) != EOF)
- if (isalpha(word[0]))
- xrt_add(word, lineno);
- else if (word[0] == '\n')
- ++lineno;
- xrt_print();
- return 0;
- }
-
-